Dra. Melanie Kolb

M. en F. C. Gustavo Magallanes-Guijón

Dr. Oliver López-Corona

# Librerías
library(RColorBrewer) 
library(funModeling)
library(corrplot)
library(mpmi)
library(minerva)

Sitio: Tlacotepec

Se tiene un marco de datos que contiene varias métricas relacionadas, y se calculó (con la teoría de la información): entropía, información mutua, ganancia de información y relación de ganancia.

Para esto se contó con los datos multivariados (marco de datos de entrada), y todas las variables se evaluaron contra una variable definida (como parámetro “objetivo”).

Acontinuación se presentan cuatro apartados de gráficos del cuerpo de agua Río Metztitlán, sitio sitio.

Los gráficos son en el siguiente orden:

Matríz de Información Mutua

sitio_mim <- read.csv("data/tlacotepec_mim.csv")

sitio_mim[is.na(sitio_mim)] <- 0

#calculo de MIC
res_mine=mine(sitio_mim)
# Biblioteca para graficar esta matriz
library(corrplot) 
# Para usar la paleta de color brewer.pal
library(RColorBrewer) 

# Truco para visualizar el valor máximo de la escala
# excluyendo la diagonal (var. con respecto a sí misma)
diag(res_mine$MIC)=0

# Gráfico de correlación con círculos. 
corrplot(res_mine$MIC, 
         method="circle",
         col=brewer.pal(n=10, name="PuOr"),
         # Mostrar sólo la diagonal superior
         type="lower", 
         #color, tamaño y rotación de las etiquetas
         tl.col="red",
         tl.cex = 0.9, 
         tl.srt=90, 
         # no visualizar la diagonal,
         # (var con respecto a sí misma)
         diag=FALSE, 
         # aceptar cualquier matriz, mic en este caso
         #(no es un elemento de correlación)
         is.corr = F 
        
)

# Gráfico de correlación con color y correlación MIC
corrplot(res_mine$MIC, 
         method="color",
         type="lower", 
         number.cex=0.7,
         # Agregar coeficiente de correlación
         addCoef.col = "black", 
         tl.col="red", 
         tl.srt=90, 
         tl.cex = 0.9,
         diag=FALSE, 
         is.corr = F 
)

eti_sitio = c(
  'SAAM', 
  'OD_mg.L', 
  'COLI_TOT', 
  'pH_CAMPO', 
  'TEMP_AGUA', 
  'NI_TOT',
  'E_COLI', 
  'HG_TOT', 
  'CR_TOT', 
  'AS_TOT', 
  'TURBIEDAD', 
  'SST', 
  'COLOR_VER',
  'DUR_TOT', 
  'N_TOT', 
  'COLI_FEC', 
  'N_NH3', 
  'N_NO2', 
  'N_NO3')


names_eti_sitio = c(
  'Sustancias Activas al Azul de Metileno',
 'Oxígeno Disuelto',
 'Coliformes Totales',
 'Potencial de Hidrógeno',
 'Temperatura agua',
 'Níquel Total',
 'Escherichia coli',
 'Mercurio Total',
 'Cromo Total',
 'Arsénico Total',
 'Turbiedad',
 'Sólidos Suspendidos Totales',
 'Color Verdadero',
 'Dureza Total',
 'Nitrógeno Total (Cálculo)',
 'Coliformes Fecales',
 'Nitrógeno Amoniacal',
 'Nitrógeno de Nitritos',
 'Nitrógeno de Nitratos')

Gráficas Información Mutua

for (i in seq_along(eti_sitio)) {
  
    print(myplot <- ggplot(var_rank_info(sitio_mim,  eti_sitio[i]), aes(x = reorder(var, mi),y = mi, fill = var))
          + geom_bar(stat = "identity") 
          + coord_flip() 
          + theme_bw() 
          + xlab("")
          + ylab("Información Mutua")
          + ggtitle(names_eti_sitio[i])
          + theme(plot.title = element_text(hjust = 0.5))
          + guides(fill = FALSE))
  
  #print(var_rank_info(sitio_normal, eti_sitio[i]))
  #save table in csv
  name_mi <- names_eti_sitio[i]
  name_table_mi <- paste("csv-graphs/tlaco/mi/",name_mi,"_mi.csv",sep = "")
  write.table(var_rank_info(sitio_mim, eti_sitio[i]), file = name_table_mi, sep = ",", col.names = NA)
  
  #save plot
  plot_mi <- paste("images/tlaco/mi/",name_mi,"_mi.png",sep = "")
  ggsave(plot_mi)
}

Gráficas Entropía

for (j in seq_along(eti_sitio)) {
  
    print(myplot <- ggplot(var_rank_info(sitio_mim,  eti_sitio[j]), aes(x = reorder(var, en),y = en, fill = var))
          + geom_bar(stat = "identity") 
          + coord_flip() 
          + theme_bw() 
          + xlab("") 
          + ylab("Entropía")
          + ggtitle(names_eti_sitio[j])
          + theme(plot.title = element_text(hjust = 0.5))
          + guides(fill = FALSE))
  
  #print(var_rank_info(sitio_normal, eti_sitio[j]))
  #save table in csv
  name_en <- names_eti_sitio[j]
  name_table_en <- paste("csv-graphs/tlaco/en/",name_en,"_en.csv",sep = "")
  write.table(var_rank_info(sitio_mim, eti_sitio[j]), file = name_table_en, sep = ",", col.names = NA)
  
  #save plot
  plot_en <- paste("images/tlaco/en/",name_en,"_en.png",sep = "")
  ggsave(plot_en)
}

Gráficas Ganancia de información

for (k in seq_along(eti_sitio)) {
  
    print(myplot <- ggplot(var_rank_info(sitio_mim,  eti_sitio[k]), aes(x = reorder(var, ig),y = ig, fill = var))
          + geom_bar(stat = "identity") 
          + coord_flip() 
          + theme_bw() 
          + xlab("") 
          + ylab("Ganancia de la Información")
          + ggtitle(names_eti_sitio[k])
          + theme(plot.title = element_text(hjust = 0.5))
          + guides(fill = FALSE))
  
  #print(var_rank_info(sitio_normal, eti_sitio[k]))
  #save table in csv
  name_ig <- names_eti_sitio[k]
  name_table_ig <- paste("csv-graphs/tlaco/ig/",name_ig,"_ig.csv",sep = "")
  write.table(var_rank_info(sitio_mim, eti_sitio[k]), file = name_table_ig, sep = ",", col.names = NA)
  
  #save plot
  plot_ig <- paste("images/tlaco/ig/",name_ig,"_ig.png",sep = "")
  ggsave(plot_ig)
}

Gráficas Proporción de Ganancia (de información)

for (l in seq_along(eti_sitio)) {
  
    print(myplot <- ggplot(var_rank_info(sitio_mim,  eti_sitio[l]), aes(x = reorder(var, gr),y = gr, fill = var))
          + geom_bar(stat = "identity") 
          + coord_flip() 
          + theme_bw() 
          + xlab("") 
          + ylab("Proporción de Ganancia (de información)")
          + ggtitle(names_eti_sitio[l])
          + theme(plot.title = element_text(hjust = 0.5))
          + guides(fill = FALSE))
  
  #print(var_rank_info(sitio_normal, eti_sitio[l]))
  #save table in csv
  name_gr <- names_eti_sitio[l]
  name_table_gr <- paste("csv-graphs/tlaco/gr/",name_gr,"_gr.csv",sep = "")
  write.table(var_rank_info(sitio_mim, eti_sitio[l]), file = name_table_gr, sep = ",", col.names = NA)
  
  #save plot
  plot_gr <- paste("images/tlaco/gr/",name_gr,"_gr.png",sep = "")
  ggsave(plot_gr)
}